[linux] Update to linux-2.6.16.29.
authorChristian Limpach <Christian.Limpach@xensource.com>
Tue, 19 Sep 2006 13:26:22 +0000 (14:26 +0100)
committerChristian Limpach <Christian.Limpach@xensource.com>
Tue, 19 Sep 2006 13:26:22 +0000 (14:26 +0100)
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
buildconfigs/mk.linux-2.6-xen
linux-2.6-xen-sparse/arch/i386/Kconfig
linux-2.6-xen-sparse/arch/ia64/Kconfig
linux-2.6-xen-sparse/arch/x86_64/Kconfig
linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S
linux-2.6-xen-sparse/arch/x86_64/kernel/traps-xen.c
linux-2.6-xen-sparse/drivers/char/tty_io.c
linux-2.6-xen-sparse/drivers/serial/Kconfig
linux-2.6-xen-sparse/mm/Kconfig
linux-2.6-xen-sparse/mm/page_alloc.c

index 8c52deca0c6b45ccb972da3ed87e0ba6ce4b9220..d3d948861de8151da421d886a7cfe74af89f00d4 100644 (file)
@@ -1,5 +1,5 @@
 LINUX_SERIES = 2.6
-LINUX_VER    = 2.6.16.13
+LINUX_VER    = 2.6.16.29
 
 EXTRAVERSION ?= xen
 
index 661d0bbecdb0f541a9dd335bc5adc32f02dcdb8b..b3ef1013c46572a605e5e24e07e72c0ce925b062 100644 (file)
@@ -789,6 +789,9 @@ config DOUBLEFAULT
 
 endmenu
 
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
+       depends on HIGHMEM
 
 menu "Power management options (ACPI, APM)"
        depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
index c32f4cee4c219ccd42809d4f2045b51644d8048e..78f5e2b3e3ddcb1fd6617414f29f216423261801 100644 (file)
@@ -276,6 +276,9 @@ config HOTPLUG_CPU
          can be controlled through /sys/devices/system/cpu/cpu#.
          Say N if you want to disable CPU hotplug.
 
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
+
 config SCHED_SMT
        bool "SMT scheduler support"
        depends on SMP
index 45d8302cb4863849f781fde3327a68db5aa704ac..79bd0044faf89cc2a59bda749f5f35e08e8afe8e 100644 (file)
@@ -368,6 +368,8 @@ config HOTPLUG_CPU
                can be controlled through /sys/devices/system/cpu/cpu#.
                Say N if you want to disable CPU hotplug.
 
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
 
 config HPET_TIMER
        bool
index 7edd8d5cb6b0f816d3769dd1c53149e4eb526773..687c48687890a32d00592f7159179871aff85da6 100644 (file)
@@ -316,12 +316,7 @@ tracesys:
        ja  1f
        movq %r10,%rcx  /* fixup for C */
        call *sys_call_table(,%rax,8)
-       movq %rax,RAX-ARGOFFSET(%rsp)
-1:     SAVE_REST
-       movq %rsp,%rdi
-       call syscall_trace_leave
-       RESTORE_TOP_OF_STACK %rbx
-       RESTORE_REST
+1:     movq %rax,RAX-ARGOFFSET(%rsp)
        /* Use IRET because user could have changed frame */
        jmp int_ret_from_sys_call
        CFI_ENDPROC
index 9fd0b94cb51021dd252204d05aef6fbed2dd77ba..653af67c0893ed3abbfa6d1b4b1365f625a3c20f 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/moduleparam.h>
 #include <linux/nmi.h>
 #include <linux/kprobes.h>
+#include <linux/kexec.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
@@ -438,6 +439,8 @@ void __kprobes __die(const char * str, struct pt_regs * regs, long err)
        printk(KERN_ALERT "RIP ");
        printk_address(regs->rip); 
        printk(" RSP <%016lx>\n", regs->rsp); 
+       if (kexec_should_crash(current))
+               crash_kexec(regs);
 }
 
 void die(const char * str, struct pt_regs * regs, long err)
@@ -461,6 +464,8 @@ void __kprobes die_nmi(char *str, struct pt_regs *regs)
         */
        printk(str, safe_smp_processor_id());
        show_registers(regs);
+       if (kexec_should_crash(current))
+               crash_kexec(regs);
        if (panic_on_timeout || panic_on_oops)
                panic("nmi watchdog");
        printk("console shuts up ...\n");
index f6f06897719686e80da39b0ef4f63524ceff1faf..0372d93bcaa82ddbfeec8f4cef54eaef2e22cefd 100644 (file)
@@ -2761,7 +2761,7 @@ static void flush_to_ldisc(void *private_)
        struct tty_struct *tty = (struct tty_struct *) private_;
        unsigned long   flags;
        struct tty_ldisc *disc;
-       struct tty_buffer *tbuf;
+       struct tty_buffer *tbuf, *head;
        int count;
        char *char_buf;
        unsigned char *flag_buf;
@@ -2778,7 +2778,9 @@ static void flush_to_ldisc(void *private_)
                goto out;
        }
        spin_lock_irqsave(&tty->buf.lock, flags);
-       while((tbuf = tty->buf.head) != NULL) {
+       head = tty->buf.head;
+       tty->buf.head = NULL;
+       while((tbuf = head) != NULL) {
                while ((count = tbuf->commit - tbuf->read) != 0) {
                        char_buf = tbuf->char_buf_ptr + tbuf->read;
                        flag_buf = tbuf->flag_buf_ptr + tbuf->read;
@@ -2787,10 +2789,12 @@ static void flush_to_ldisc(void *private_)
                        disc->receive_buf(tty, char_buf, flag_buf, count);
                        spin_lock_irqsave(&tty->buf.lock, flags);
                }
-               if (tbuf->active)
+               if (tbuf->active) {
+                       tty->buf.head = head;
                        break;
-               tty->buf.head = tbuf->next;
-               if (tty->buf.head == NULL)
+               }
+               head = tbuf->next;
+               if (head == NULL)
                        tty->buf.tail = NULL;
                tty_buffer_free(tty, tbuf);
        }
index fa1fdb0b376bc0c7ab53192a9d5f35361a98b7dd..c6be86d83e2fe0b2ba85fbd4b0e052de560e43fd 100644 (file)
@@ -821,6 +821,7 @@ config SERIAL_ICOM
        tristate "IBM Multiport Serial Adapter"
        depends on PCI && (PPC_ISERIES || PPC_PSERIES)
        select SERIAL_CORE
+       select FW_LOADER
        help
          This driver is for a family of multiport serial adapters
          including 2 port RVX, 2 port internal modem, 4 port internal
index c9e8c6ddb881ba02a5d66a90e40da2e458c3ce7a..f54f49fbb6cd305c89de884744881a60f3b4a38f 100644 (file)
@@ -115,7 +115,7 @@ config SPARSEMEM_EXTREME
 # eventually, we can have this option just 'select SPARSEMEM'
 config MEMORY_HOTPLUG
        bool "Allow for memory hot-add"
-       depends on SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND
+       depends on SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND && ARCH_ENABLE_MEMORY_HOTPLUG
 
 comment "Memory hotplug is currently incompatible with Software Suspend"
        depends on SPARSEMEM && HOTPLUG && SOFTWARE_SUSPEND
index c0f3c605371eb9b15b22e9937b7ce2cc7a78b847..f12323955a53d79c3e8ab3ded6619d95d238682a 100644 (file)
@@ -951,7 +951,8 @@ restart:
                alloc_flags |= ALLOC_HARDER;
        if (gfp_mask & __GFP_HIGH)
                alloc_flags |= ALLOC_HIGH;
-       alloc_flags |= ALLOC_CPUSET;
+       if (wait)
+               alloc_flags |= ALLOC_CPUSET;
 
        /*
         * Go through the zonelist again. Let __GFP_HIGH and allocations